﻿using System;
using System.Collections.Generic;
using ControleRepresentanteSync.Logic;

namespace ControleRepresentanteSync.Application.SimpleSync
{
    internal interface ISimpleSyncContentViewModel<TModel, TItem, TContract> : IViewModel
        where TItem : ISimpleSycItem<TContract>
    {
        event EventHandler IsCheckedChanged;
        event EventHandler IsValidChanged;
        event EventHandler TargetChanged;
        event EventHandler ActionChanged;
        bool IsValid { get; set; }
        bool IsChecked { get; set; }
        SyncAction Action { get; set; }
        IList<SyncAction> Actions { get; }
        TItem Target { get; set; }
        IList<TItem> Targets { get; }
        TModel Model { set; get; }
    }
}